package com.rongke.model;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.rongke.utils.DateJsonDeserializer;
import com.rongke.utils.DateJsonSerializer;
import org.springframework.format.annotation.DateTimeFormat;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * @CashRecord
 * @用户商家现金流水(cash_record)
 * @version : Ver 1.0
 */
@TableName("cash_record")
public class CashRecord implements Serializable {
	@TableField(exist = false)
	private static final long serialVersionUID = 1L;

	/**
	 * @备注:
	 * @字段:id BIGINT(19)
	 */
	@TableId(type = IdType.AUTO)
	private java.lang.Long id;


	/**
	 * @备注:用户id
	 * @字段:user_id BIGINT(19)
	 */
	private java.lang.Long userId;
	/**
	 * 备注:用户id
	 */
	@TableField(exist = false)
	private User user;


	/**
	 * @备注:交易单号
	 * @字段:transaction_num VARCHAR(255)
	 */
	private java.lang.String transactionNum;


	/**
	 * @备注:商家单号
	 * @字段:merchant_num VARCHAR(255)
	 */
	private java.lang.String merchantNum;


	/**
	 * @备注: 管理员id
	 * @字段:adminid
	 */
	private  java.lang.Long adminid;

    /***
	 * 管理员类
	 * */

    private transient Admin admin;

	public Admin getAdmin() {
		return admin;
	}

	public void setAdmin(Admin admin) {
		this.admin = admin;
	}

	public Long getAdminid() {
		return adminid;
	}

	public void setAdminid(Long adminid) {
		this.adminid = adminid;
	}

	/**
	 * @备注:流水类型，1表示充值，2表示提现
	 * @字段:recoed_type INT(10)
	 */
	private java.lang.Integer recoedType;


	/**
	 * @备注:1表示余额，2表示押金
	 * @字段:money_type INT(10)
	 */
	private java.lang.Integer moneyType;


	/**
	 * @备注:具体数额
	 * @字段:money DOUBLE(22)
	 */
	private BigDecimal money;


	/**
	 * @备注:支付类型：1表示余额支付2表示支付宝支付，3表示微信支付，4银联支付,5,后台支付
	 * @字段:pay_type INT(10)
	 */
	private java.lang.Integer payType;


	/**
	 * @备注:0表示不成功，1表示成功（提现改状态为null）
	 * @字段:status INT(10)
	 */
	private java.lang.Integer status;


	/**
	 * @备注:银行名称
	 * @字段:bank_name VARCHAR(255)
	 */
	private java.lang.String bankName;


	/**
	 * @备注:持卡人姓名
	 * @字段:bank_card_name VARCHAR(255)
	 */
	private java.lang.String bankCardName;


	/**
	 * @备注:银行卡号
	 * @字段:bank_card VARCHAR(255)
	 */
	private java.lang.String bankCard;


	/**
	 * @备注:提现状态:默认1申请中,2已打款,3失败
	 * @字段:withdraw_status INT(10)
	 */
	private java.lang.Integer withdrawStatus;


	/**
	 * @备注:创建时间
	 * @字段:gmt_datetime DATETIME(19)
	 */
	@JsonSerialize(using=DateJsonSerializer.class)
	@JsonDeserialize(using=DateJsonDeserializer.class)
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss" )
	private java.util.Date gmtDatetime = new java.util.Date();


	/**
	 * @备注:更新时间
	 * @字段:upt_datetime DATETIME(19)
	 */
	@JsonSerialize(using=DateJsonSerializer.class)
	@JsonDeserialize(using=DateJsonDeserializer.class)
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss" )
	private java.util.Date uptDatetime = new java.util.Date();


	public CashRecord(){
	}

	public CashRecord(
		java.lang.Long id
	){
		this.id = id;
	}



	public void setId(java.lang.Long id) {
		this.id = id;
	}

	public java.lang.Long getId() {
		return this.id;
	}

	public void setUserId(java.lang.Long userId) {
			this.userId = userId;
			}

	public java.lang.Long getUserId() {
			return this.userId;
	}
	public void setUser(User user) {
		this.user = user;
	}

	public User getUser() {
		return this.user;
	}


	public void setTransactionNum(java.lang.String transactionNum) {
		this.transactionNum = transactionNum;
	}

	public java.lang.String getTransactionNum() {
		return this.transactionNum;
	}


	public void setMerchantNum(java.lang.String merchantNum) {
		this.merchantNum = merchantNum;
	}

	public java.lang.String getMerchantNum() {
		return this.merchantNum;
	}





	public void setRecoedType(java.lang.Integer recoedType) {
		this.recoedType = recoedType;
	}

	public java.lang.Integer getRecoedType() {
		return this.recoedType;
	}


	public void setMoneyType(java.lang.Integer moneyType) {
		this.moneyType = moneyType;
	}

	public java.lang.Integer getMoneyType() {
		return this.moneyType;
	}


	public void setMoney(BigDecimal money) {
		this.money = money;
	}

	public BigDecimal getMoney() {
		return this.money;
	}


	public void setPayType(java.lang.Integer payType) {
		this.payType = payType;
	}

	public java.lang.Integer getPayType() {
		return this.payType;
	}


	public void setStatus(java.lang.Integer status) {
		this.status = status;
	}

	public java.lang.Integer getStatus() {
		return this.status;
	}


	public void setBankName(java.lang.String bankName) {
		this.bankName = bankName;
	}

	public java.lang.String getBankName() {
		return this.bankName;
	}


	public void setBankCardName(java.lang.String bankCardName) {
		this.bankCardName = bankCardName;
	}

	public java.lang.String getBankCardName() {
		return this.bankCardName;
	}


	public void setBankCard(java.lang.String bankCard) {
		this.bankCard = bankCard;
	}

	public java.lang.String getBankCard() {
		return this.bankCard;
	}


	public void setWithdrawStatus(java.lang.Integer withdrawStatus) {
		this.withdrawStatus = withdrawStatus;
	}

	public java.lang.Integer getWithdrawStatus() {
		return this.withdrawStatus;
	}


	public void setGmtDatetime(java.util.Date gmtDatetime) {
		this.gmtDatetime = gmtDatetime;
	}

	public java.util.Date getGmtDatetime() {
		return this.gmtDatetime;
	}


	public void setUptDatetime(java.util.Date uptDatetime) {
		this.uptDatetime = uptDatetime;
	}

	public java.util.Date getUptDatetime() {
		return this.uptDatetime;
	}
}
